/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package gui;

import java.awt.Dimension;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.io.IOException;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.JFileChooser;
import machine.Savia;

/**
 *
 * @author Administrator
 */
public class Savia84 extends javax.swing.JFrame {

    private final ExtendedFileFilter hex = new ExtendedFileFilter("Hex file", ".hex");
    
    private Savia m;
    
    /**
     * Creates new form Savia84
     */
    public Savia84() {
        initComponents();
        initEmulator();
    }

    private void initEmulator() {
        Dimension screen = Toolkit.getDefaultToolkit().getScreenSize();
        setLocation((screen.width-getSize().width)/2, (screen.height-getSize().height)/2); 
        
        m = new Savia();
        
        m.setDisp1(Disp1);
        m.setDisp2(Disp2);
        m.setDisp3(Disp3);
        m.setDisp4(Disp4);
        m.setDisp5(Disp5);
        m.setDisp6(Disp6);
        m.setDisp7(Disp7);
        m.setDisp8(Disp8);

        m.setLed1(Led1);
        m.setLed2(Led2);
        m.setLed3(Led3);
        m.setLed4(Led4);
        m.setLed5(Led5);
        m.setLed6(Led6);
        m.setLed7(Led7);
        m.setLed8(Led8);

        m.setDispA1(DispA1);
        m.setDispA2(DispA2);
        m.setDispA3(DispA3);
        m.setDispA4(DispA4);
        m.setDispD1(DispD1);
        m.setDispD2(DispD2);

        m.start();
    }
    
    /**
     * This method is called from within the constructor to initialize the form.
     * WARNING: Do NOT modify this code. The content of this method is always
     * regenerated by the Form Editor.
     */
    @SuppressWarnings("unchecked")
    // <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
    private void initComponents() {

        fc = new javax.swing.JFileChooser();
        debugGroup = new javax.swing.ButtonGroup();
        dispPanel = new javax.swing.JPanel();
        Disp1 = new gui.SevenDisp();
        Disp2 = new gui.SevenDisp();
        Disp3 = new gui.SevenDisp();
        Disp4 = new gui.SevenDisp();
        Disp5 = new gui.SevenDisp();
        Disp6 = new gui.SevenDisp();
        Disp7 = new gui.SevenDisp();
        Disp8 = new gui.SevenDisp();
        keyPanel = new javax.swing.JPanel();
        Button0 = new javax.swing.JButton();
        Button1 = new javax.swing.JButton();
        Button2 = new javax.swing.JButton();
        Button3 = new javax.swing.JButton();
        Button4 = new javax.swing.JButton();
        Button5 = new javax.swing.JButton();
        Button6 = new javax.swing.JButton();
        Button7 = new javax.swing.JButton();
        Button8 = new javax.swing.JButton();
        Button9 = new javax.swing.JButton();
        ButtonA = new javax.swing.JButton();
        ButtonB = new javax.swing.JButton();
        ButtonC = new javax.swing.JButton();
        ButtonD = new javax.swing.JButton();
        ButtonE = new javax.swing.JButton();
        ButtonF = new javax.swing.JButton();
        ButtonBr = new javax.swing.JButton();
        ButtonS = new javax.swing.JButton();
        ButtonL = new javax.swing.JButton();
        ButtonEx = new javax.swing.JButton();
        ButtonRes = new javax.swing.JButton();
        ButtonR = new javax.swing.JButton();
        ButtonAd = new javax.swing.JButton();
        ButtonDa = new javax.swing.JButton();
        Led1 = new javax.swing.JLabel();
        Led2 = new javax.swing.JLabel();
        Led3 = new javax.swing.JLabel();
        Led4 = new javax.swing.JLabel();
        Led5 = new javax.swing.JLabel();
        Led6 = new javax.swing.JLabel();
        Led7 = new javax.swing.JLabel();
        Led8 = new javax.swing.JLabel();
        dispPanel1 = new javax.swing.JPanel();
        DispA1 = new gui.SevenDisp();
        DispA2 = new gui.SevenDisp();
        DispA3 = new gui.SevenDisp();
        DispA4 = new gui.SevenDisp();
        DispD1 = new gui.SevenDisp();
        DispD2 = new gui.SevenDisp();
        jPanel1 = new javax.swing.JPanel();
        jRadioButton1 = new javax.swing.JRadioButton();
        jRadioButton3 = new javax.swing.JRadioButton();
        jRadioButton5 = new javax.swing.JRadioButton();
        ButtonStep = new javax.swing.JButton();
        jMenuBar1 = new javax.swing.JMenuBar();
        mFile = new javax.swing.JMenu();
        mLoadRam = new javax.swing.JMenuItem();
        mSaveRam = new javax.swing.JMenuItem();
        jSeparator1 = new javax.swing.JPopupMenu.Separator();
        mExit = new javax.swing.JMenuItem();

        setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);
        setTitle("Savia 84");

        dispPanel.setBackground(new java.awt.Color(0, 0, 0));

        Disp1.setOffColor(new java.awt.Color(22, 22, 22));

        javax.swing.GroupLayout Disp1Layout = new javax.swing.GroupLayout(Disp1);
        Disp1.setLayout(Disp1Layout);
        Disp1Layout.setHorizontalGroup(
            Disp1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        Disp1Layout.setVerticalGroup(
            Disp1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        Disp2.setOffColor(new java.awt.Color(22, 22, 22));

        javax.swing.GroupLayout Disp2Layout = new javax.swing.GroupLayout(Disp2);
        Disp2.setLayout(Disp2Layout);
        Disp2Layout.setHorizontalGroup(
            Disp2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        Disp2Layout.setVerticalGroup(
            Disp2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        Disp3.setOffColor(new java.awt.Color(22, 22, 22));

        javax.swing.GroupLayout Disp3Layout = new javax.swing.GroupLayout(Disp3);
        Disp3.setLayout(Disp3Layout);
        Disp3Layout.setHorizontalGroup(
            Disp3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        Disp3Layout.setVerticalGroup(
            Disp3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        Disp4.setOffColor(new java.awt.Color(22, 22, 22));

        javax.swing.GroupLayout Disp4Layout = new javax.swing.GroupLayout(Disp4);
        Disp4.setLayout(Disp4Layout);
        Disp4Layout.setHorizontalGroup(
            Disp4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        Disp4Layout.setVerticalGroup(
            Disp4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        Disp5.setOffColor(new java.awt.Color(22, 22, 22));

        javax.swing.GroupLayout Disp5Layout = new javax.swing.GroupLayout(Disp5);
        Disp5.setLayout(Disp5Layout);
        Disp5Layout.setHorizontalGroup(
            Disp5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        Disp5Layout.setVerticalGroup(
            Disp5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        Disp6.setOffColor(new java.awt.Color(22, 22, 22));

        javax.swing.GroupLayout Disp6Layout = new javax.swing.GroupLayout(Disp6);
        Disp6.setLayout(Disp6Layout);
        Disp6Layout.setHorizontalGroup(
            Disp6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        Disp6Layout.setVerticalGroup(
            Disp6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        Disp7.setOffColor(new java.awt.Color(22, 22, 22));

        javax.swing.GroupLayout Disp7Layout = new javax.swing.GroupLayout(Disp7);
        Disp7.setLayout(Disp7Layout);
        Disp7Layout.setHorizontalGroup(
            Disp7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        Disp7Layout.setVerticalGroup(
            Disp7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        Disp8.setOffColor(new java.awt.Color(22, 22, 22));

        javax.swing.GroupLayout Disp8Layout = new javax.swing.GroupLayout(Disp8);
        Disp8.setLayout(Disp8Layout);
        Disp8Layout.setHorizontalGroup(
            Disp8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        Disp8Layout.setVerticalGroup(
            Disp8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout dispPanelLayout = new javax.swing.GroupLayout(dispPanel);
        dispPanel.setLayout(dispPanelLayout);
        dispPanelLayout.setHorizontalGroup(
            dispPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(dispPanelLayout.createSequentialGroup()
                .addComponent(Disp1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Disp2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Disp3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Disp4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Disp5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Disp6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Disp7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(Disp8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        dispPanelLayout.setVerticalGroup(
            dispPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(Disp1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(Disp3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(Disp4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(Disp5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(Disp6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(Disp7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(Disp8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(Disp2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        getContentPane().add(dispPanel, java.awt.BorderLayout.PAGE_START);

        keyPanel.setBackground(new java.awt.Color(22, 22, 22));
        keyPanel.setAlignmentX(0.0F);

        Button0.setBackground(new java.awt.Color(33, 33, 33));
        Button0.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button0.setForeground(new java.awt.Color(240, 240, 240));
        Button0.setMnemonic(KeyEvent.VK_0);
        Button0.setText("0");
        Button0.setActionCommand("00");
        Button0.setFocusable(false);
        Button0.setPreferredSize(new java.awt.Dimension(38, 38));
        Button0.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button1.setBackground(new java.awt.Color(33, 33, 33));
        Button1.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button1.setForeground(new java.awt.Color(240, 240, 240));
        Button1.setMnemonic(KeyEvent.VK_1);
        Button1.setText("1");
        Button1.setActionCommand("01");
        Button1.setFocusable(false);
        Button1.setPreferredSize(new java.awt.Dimension(38, 38));
        Button1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button2.setBackground(new java.awt.Color(33, 33, 33));
        Button2.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button2.setForeground(new java.awt.Color(240, 240, 240));
        Button2.setMnemonic(KeyEvent.VK_2);
        Button2.setText("2");
        Button2.setActionCommand("02");
        Button2.setFocusable(false);
        Button2.setPreferredSize(new java.awt.Dimension(38, 38));
        Button2.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button3.setBackground(new java.awt.Color(33, 33, 33));
        Button3.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button3.setForeground(new java.awt.Color(240, 240, 240));
        Button3.setMnemonic(KeyEvent.VK_3);
        Button3.setText("3");
        Button3.setActionCommand("03");
        Button3.setFocusable(false);
        Button3.setPreferredSize(new java.awt.Dimension(38, 38));
        Button3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button4.setBackground(new java.awt.Color(33, 33, 33));
        Button4.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button4.setForeground(new java.awt.Color(240, 240, 240));
        Button4.setMnemonic(KeyEvent.VK_4);
        Button4.setText("4");
        Button4.setActionCommand("04");
        Button4.setFocusable(false);
        Button4.setPreferredSize(new java.awt.Dimension(38, 38));
        Button4.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button5.setBackground(new java.awt.Color(33, 33, 33));
        Button5.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button5.setForeground(new java.awt.Color(240, 240, 240));
        Button5.setMnemonic(KeyEvent.VK_5);
        Button5.setText("5");
        Button5.setActionCommand("05");
        Button5.setFocusable(false);
        Button5.setPreferredSize(new java.awt.Dimension(38, 38));
        Button5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button6.setBackground(new java.awt.Color(33, 33, 33));
        Button6.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button6.setForeground(new java.awt.Color(240, 240, 240));
        Button6.setMnemonic(KeyEvent.VK_6);
        Button6.setText("6");
        Button6.setActionCommand("06");
        Button6.setFocusable(false);
        Button6.setPreferredSize(new java.awt.Dimension(38, 38));
        Button6.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button7.setBackground(new java.awt.Color(33, 33, 33));
        Button7.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button7.setForeground(new java.awt.Color(240, 240, 240));
        Button7.setMnemonic(KeyEvent.VK_7);
        Button7.setText("7");
        Button7.setActionCommand("07");
        Button7.setFocusable(false);
        Button7.setPreferredSize(new java.awt.Dimension(38, 38));
        Button7.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button8.setBackground(new java.awt.Color(33, 33, 33));
        Button8.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button8.setForeground(new java.awt.Color(240, 240, 240));
        Button8.setMnemonic(KeyEvent.VK_8);
        Button8.setText("8");
        Button8.setActionCommand("08");
        Button8.setFocusable(false);
        Button8.setPreferredSize(new java.awt.Dimension(38, 38));
        Button8.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Button9.setBackground(new java.awt.Color(33, 33, 33));
        Button9.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        Button9.setForeground(new java.awt.Color(240, 240, 240));
        Button9.setMnemonic(KeyEvent.VK_9);
        Button9.setText("9");
        Button9.setActionCommand("09");
        Button9.setFocusable(false);
        Button9.setPreferredSize(new java.awt.Dimension(38, 38));
        Button9.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonA.setBackground(new java.awt.Color(33, 33, 33));
        ButtonA.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonA.setForeground(new java.awt.Color(240, 240, 240));
        ButtonA.setMnemonic(KeyEvent.VK_A);
        ButtonA.setText("A");
        ButtonA.setActionCommand("0A");
        ButtonA.setFocusable(false);
        ButtonA.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonA.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonB.setBackground(new java.awt.Color(33, 33, 33));
        ButtonB.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonB.setForeground(new java.awt.Color(240, 240, 240));
        ButtonB.setMnemonic(KeyEvent.VK_B);
        ButtonB.setText("B");
        ButtonB.setActionCommand("0B");
        ButtonB.setFocusable(false);
        ButtonB.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonB.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonC.setBackground(new java.awt.Color(33, 33, 33));
        ButtonC.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonC.setForeground(new java.awt.Color(240, 240, 240));
        ButtonC.setMnemonic(KeyEvent.VK_C);
        ButtonC.setText("C");
        ButtonC.setActionCommand("0C");
        ButtonC.setFocusable(false);
        ButtonC.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonC.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonD.setBackground(new java.awt.Color(33, 33, 33));
        ButtonD.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonD.setForeground(new java.awt.Color(240, 240, 240));
        ButtonD.setMnemonic(KeyEvent.VK_D);
        ButtonD.setText("D");
        ButtonD.setActionCommand("0D");
        ButtonD.setFocusable(false);
        ButtonD.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonD.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonE.setBackground(new java.awt.Color(33, 33, 33));
        ButtonE.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonE.setForeground(new java.awt.Color(240, 240, 240));
        ButtonE.setMnemonic(KeyEvent.VK_E);
        ButtonE.setText("E");
        ButtonE.setActionCommand("0E");
        ButtonE.setFocusable(false);
        ButtonE.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonE.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonF.setBackground(new java.awt.Color(33, 33, 33));
        ButtonF.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonF.setForeground(new java.awt.Color(240, 240, 240));
        ButtonF.setMnemonic(KeyEvent.VK_F);
        ButtonF.setText("F");
        ButtonF.setActionCommand("0F");
        ButtonF.setFocusable(false);
        ButtonF.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonF.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonBr.setBackground(new java.awt.Color(33, 33, 33));
        ButtonBr.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonBr.setForeground(new java.awt.Color(240, 240, 240));
        ButtonBr.setText("BR");
        ButtonBr.setActionCommand("10");
        ButtonBr.setFocusable(false);
        ButtonBr.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonBr.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonS.setBackground(new java.awt.Color(33, 33, 33));
        ButtonS.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonS.setForeground(new java.awt.Color(240, 240, 240));
        ButtonS.setText("S");
        ButtonS.setActionCommand("20");
        ButtonS.setFocusable(false);
        ButtonS.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonS.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonL.setBackground(new java.awt.Color(33, 33, 33));
        ButtonL.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonL.setForeground(new java.awt.Color(240, 240, 240));
        ButtonL.setText("L");
        ButtonL.setActionCommand("30");
        ButtonL.setFocusable(false);
        ButtonL.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonL.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonEx.setBackground(new java.awt.Color(33, 33, 33));
        ButtonEx.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonEx.setForeground(new java.awt.Color(240, 240, 240));
        ButtonEx.setText("EX");
        ButtonEx.setActionCommand("40");
        ButtonEx.setFocusable(false);
        ButtonEx.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonEx.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonRes.setBackground(new java.awt.Color(33, 33, 33));
        ButtonRes.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonRes.setForeground(new java.awt.Color(240, 240, 240));
        ButtonRes.setText("Res");
        ButtonRes.setActionCommand("");
        ButtonRes.setFocusable(false);
        ButtonRes.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonRes.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonResActionPerformed(evt);
            }
        });

        ButtonR.setBackground(new java.awt.Color(33, 33, 33));
        ButtonR.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonR.setForeground(new java.awt.Color(240, 240, 240));
        ButtonR.setText("R");
        ButtonR.setActionCommand("21");
        ButtonR.setFocusable(false);
        ButtonR.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonR.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonAd.setBackground(new java.awt.Color(33, 33, 33));
        ButtonAd.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonAd.setForeground(new java.awt.Color(240, 240, 240));
        ButtonAd.setText("AD");
        ButtonAd.setActionCommand("31");
        ButtonAd.setFocusable(false);
        ButtonAd.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonAd.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        ButtonDa.setBackground(new java.awt.Color(33, 33, 33));
        ButtonDa.setFont(new java.awt.Font("Tahoma", 1, 14)); // NOI18N
        ButtonDa.setForeground(new java.awt.Color(240, 240, 240));
        ButtonDa.setText("DA");
        ButtonDa.setActionCommand("41");
        ButtonDa.setFocusable(false);
        ButtonDa.setPreferredSize(new java.awt.Dimension(38, 38));
        ButtonDa.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonAction(evt);
            }
        });

        Led1.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Led1.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/led.png"))); // NOI18N
        Led1.setEnabled(false);
        Led1.setFocusable(false);
        Led1.setPreferredSize(new java.awt.Dimension(24, 24));
        Led1.setRequestFocusEnabled(false);

        Led2.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Led2.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/led.png"))); // NOI18N
        Led2.setEnabled(false);
        Led2.setFocusable(false);
        Led2.setPreferredSize(new java.awt.Dimension(24, 24));
        Led2.setRequestFocusEnabled(false);

        Led3.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Led3.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/led.png"))); // NOI18N
        Led3.setEnabled(false);
        Led3.setFocusable(false);
        Led3.setPreferredSize(new java.awt.Dimension(24, 24));
        Led3.setRequestFocusEnabled(false);

        Led4.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Led4.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/led.png"))); // NOI18N
        Led4.setEnabled(false);
        Led4.setFocusable(false);
        Led4.setPreferredSize(new java.awt.Dimension(24, 24));
        Led4.setRequestFocusEnabled(false);

        Led5.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Led5.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/led.png"))); // NOI18N
        Led5.setEnabled(false);
        Led5.setFocusable(false);
        Led5.setPreferredSize(new java.awt.Dimension(24, 24));
        Led5.setRequestFocusEnabled(false);

        Led6.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Led6.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/led.png"))); // NOI18N
        Led6.setEnabled(false);
        Led6.setFocusable(false);
        Led6.setPreferredSize(new java.awt.Dimension(24, 24));
        Led6.setRequestFocusEnabled(false);

        Led7.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Led7.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/led.png"))); // NOI18N
        Led7.setEnabled(false);
        Led7.setFocusable(false);
        Led7.setPreferredSize(new java.awt.Dimension(24, 24));
        Led7.setRequestFocusEnabled(false);

        Led8.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
        Led8.setIcon(new javax.swing.ImageIcon(getClass().getResource("/icons/led.png"))); // NOI18N
        Led8.setEnabled(false);
        Led8.setFocusable(false);
        Led8.setPreferredSize(new java.awt.Dimension(24, 24));
        Led8.setRequestFocusEnabled(false);

        dispPanel1.setBackground(new java.awt.Color(0, 0, 0));

        DispA1.setOffColor(new java.awt.Color(22, 22, 22));
        DispA1.setOnColor(java.awt.Color.orange);

        javax.swing.GroupLayout DispA1Layout = new javax.swing.GroupLayout(DispA1);
        DispA1.setLayout(DispA1Layout);
        DispA1Layout.setHorizontalGroup(
            DispA1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        DispA1Layout.setVerticalGroup(
            DispA1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        DispA2.setOffColor(new java.awt.Color(22, 22, 22));
        DispA2.setOnColor(java.awt.Color.orange);

        javax.swing.GroupLayout DispA2Layout = new javax.swing.GroupLayout(DispA2);
        DispA2.setLayout(DispA2Layout);
        DispA2Layout.setHorizontalGroup(
            DispA2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        DispA2Layout.setVerticalGroup(
            DispA2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        DispA3.setOffColor(new java.awt.Color(22, 22, 22));
        DispA3.setOnColor(java.awt.Color.orange);

        javax.swing.GroupLayout DispA3Layout = new javax.swing.GroupLayout(DispA3);
        DispA3.setLayout(DispA3Layout);
        DispA3Layout.setHorizontalGroup(
            DispA3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        DispA3Layout.setVerticalGroup(
            DispA3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        DispA4.setOffColor(new java.awt.Color(22, 22, 22));
        DispA4.setOnColor(java.awt.Color.orange);

        javax.swing.GroupLayout DispA4Layout = new javax.swing.GroupLayout(DispA4);
        DispA4.setLayout(DispA4Layout);
        DispA4Layout.setHorizontalGroup(
            DispA4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        DispA4Layout.setVerticalGroup(
            DispA4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        DispD1.setOffColor(new java.awt.Color(22, 22, 22));
        DispD1.setOnColor(java.awt.Color.orange);

        javax.swing.GroupLayout DispD1Layout = new javax.swing.GroupLayout(DispD1);
        DispD1.setLayout(DispD1Layout);
        DispD1Layout.setHorizontalGroup(
            DispD1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        DispD1Layout.setVerticalGroup(
            DispD1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        DispD2.setOffColor(new java.awt.Color(22, 22, 22));
        DispD2.setOnColor(java.awt.Color.orange);

        javax.swing.GroupLayout DispD2Layout = new javax.swing.GroupLayout(DispD2);
        DispD2.setLayout(DispD2Layout);
        DispD2Layout.setHorizontalGroup(
            DispD2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 80, Short.MAX_VALUE)
        );
        DispD2Layout.setVerticalGroup(
            DispD2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGap(0, 100, Short.MAX_VALUE)
        );

        javax.swing.GroupLayout dispPanel1Layout = new javax.swing.GroupLayout(dispPanel1);
        dispPanel1.setLayout(dispPanel1Layout);
        dispPanel1Layout.setHorizontalGroup(
            dispPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(dispPanel1Layout.createSequentialGroup()
                .addComponent(DispA1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(DispA2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(DispA3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(DispA4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGap(178, 178, 178)
                .addComponent(DispD1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                .addComponent(DispD2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        dispPanel1Layout.setVerticalGroup(
            dispPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addComponent(DispA1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(DispA3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(DispA4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(DispD1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(DispD2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
            .addComponent(DispA2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
        );

        jPanel1.setBackground(new java.awt.Color(22, 22, 22));
        jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder(null, "Debug", javax.swing.border.TitledBorder.DEFAULT_JUSTIFICATION, javax.swing.border.TitledBorder.DEFAULT_POSITION, new java.awt.Font("Tahoma", 0, 11), new java.awt.Color(129, 135, 147))); // NOI18N
        jPanel1.setForeground(new java.awt.Color(240, 240, 240));

        jRadioButton1.setBackground(new java.awt.Color(22, 22, 22));
        debugGroup.add(jRadioButton1);
        jRadioButton1.setForeground(new java.awt.Color(240, 240, 240));
        jRadioButton1.setSelected(true);
        jRadioButton1.setText("Off");
        jRadioButton1.setActionCommand("O");
        jRadioButton1.setFocusPainted(false);
        jRadioButton1.setFocusable(false);
        jRadioButton1.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                DebugModeAction(evt);
            }
        });

        jRadioButton3.setBackground(new java.awt.Color(22, 22, 22));
        debugGroup.add(jRadioButton3);
        jRadioButton3.setForeground(new java.awt.Color(240, 240, 240));
        jRadioButton3.setText("Instructions");
        jRadioButton3.setActionCommand("I");
        jRadioButton3.setFocusPainted(false);
        jRadioButton3.setFocusable(false);
        jRadioButton3.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                DebugModeAction(evt);
            }
        });

        jRadioButton5.setBackground(new java.awt.Color(22, 22, 22));
        debugGroup.add(jRadioButton5);
        jRadioButton5.setForeground(new java.awt.Color(240, 240, 240));
        jRadioButton5.setText("Cycles");
        jRadioButton5.setActionCommand("C");
        jRadioButton5.setFocusPainted(false);
        jRadioButton5.setFocusable(false);
        jRadioButton5.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                DebugModeAction(evt);
            }
        });

        javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
        jPanel1.setLayout(jPanel1Layout);
        jPanel1Layout.setHorizontalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addComponent(jRadioButton1)
                    .addComponent(jRadioButton3)
                    .addComponent(jRadioButton5))
                .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
        );
        jPanel1Layout.setVerticalGroup(
            jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(jPanel1Layout.createSequentialGroup()
                .addContainerGap()
                .addComponent(jRadioButton1)
                .addGap(18, 18, 18)
                .addComponent(jRadioButton3)
                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 15, Short.MAX_VALUE)
                .addComponent(jRadioButton5)
                .addContainerGap())
        );

        ButtonStep.setBackground(new java.awt.Color(33, 33, 33));
        ButtonStep.setForeground(new java.awt.Color(240, 240, 240));
        ButtonStep.setMnemonic(KeyEvent.VK_S);
        ButtonStep.setText("Step");
        ButtonStep.setFocusable(false);
        ButtonStep.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                ButtonStepActionPerformed(evt);
            }
        });

        javax.swing.GroupLayout keyPanelLayout = new javax.swing.GroupLayout(keyPanel);
        keyPanel.setLayout(keyPanelLayout);
        keyPanelLayout.setHorizontalGroup(
            keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(keyPanelLayout.createSequentialGroup()
                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(keyPanelLayout.createSequentialGroup()
                        .addGap(23, 23, 23)
                        .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
                            .addGroup(keyPanelLayout.createSequentialGroup()
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false)
                                    .addGroup(keyPanelLayout.createSequentialGroup()
                                        .addComponent(ButtonC, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(ButtonD, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(ButtonE, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(ButtonF, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(javax.swing.GroupLayout.Alignment.LEADING, keyPanelLayout.createSequentialGroup()
                                        .addComponent(Button8, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(Button9, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(ButtonA, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(ButtonB, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)))
                                .addGap(37, 37, 37)
                                .addComponent(ButtonStep)
                                .addGap(8, 8, 8)
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
                                    .addGroup(keyPanelLayout.createSequentialGroup()
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(ButtonL, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(keyPanelLayout.createSequentialGroup()
                                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                        .addComponent(ButtonEx, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))))
                            .addGroup(keyPanelLayout.createSequentialGroup()
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addGroup(keyPanelLayout.createSequentialGroup()
                                        .addComponent(Button4, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(Button5, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(Button6, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(Button7, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE))
                                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, keyPanelLayout.createSequentialGroup()
                                        .addComponent(Button0, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(Button1, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(Button2, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(18, 18, 18)
                                        .addComponent(Button3, javax.swing.GroupLayout.PREFERRED_SIZE, 43, javax.swing.GroupLayout.PREFERRED_SIZE)
                                        .addGap(3, 3, 3)))
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(ButtonS, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonBr, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))))
                        .addGap(18, 18, 18)
                        .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(ButtonRes, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ButtonDa, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ButtonR, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(ButtonAd, javax.swing.GroupLayout.PREFERRED_SIZE, 78, javax.swing.GroupLayout.PREFERRED_SIZE))
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addComponent(Led7, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(Led1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addComponent(Led2, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                            .addGroup(keyPanelLayout.createSequentialGroup()
                                .addGap(26, 26, 26)
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                                    .addComponent(Led4, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(Led5, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(Led6, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(Led3, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
                    .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, keyPanelLayout.createSequentialGroup()
                        .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                        .addComponent(Led8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
                .addContainerGap())
            .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, keyPanelLayout.createSequentialGroup()
                .addGap(0, 0, Short.MAX_VALUE)
                .addComponent(dispPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
        );
        keyPanelLayout.setVerticalGroup(
            keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
            .addGroup(keyPanelLayout.createSequentialGroup()
                .addComponent(dispPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                    .addGroup(keyPanelLayout.createSequentialGroup()
                        .addGap(14, 14, 14)
                        .addComponent(Led1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Led2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Led3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Led4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Led5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Led6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Led7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
                        .addComponent(Led8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                        .addGap(0, 0, Short.MAX_VALUE))
                    .addGroup(keyPanelLayout.createSequentialGroup()
                        .addGap(20, 20, 20)
                        .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
                            .addGroup(keyPanelLayout.createSequentialGroup()
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(Button0, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(Button1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(Button2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(Button3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonBr, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(ButtonRes, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(Button4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(Button5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(Button6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(Button7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonS, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(ButtonR, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(Button8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(Button9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonA, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonB, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonL, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(ButtonAd, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addGap(18, 18, 18)
                                .addGroup(keyPanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
                                    .addComponent(ButtonC, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(ButtonD, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonF, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonE, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                    .addComponent(ButtonEx, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
                                    .addComponent(ButtonDa, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
                                .addGap(32, 32, 32))
                            .addGroup(keyPanelLayout.createSequentialGroup()
                                .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
                                .addGap(18, 18, 18)
                                .addComponent(ButtonStep)
                                .addContainerGap())))))
        );

        Button0.getAccessibleContext().setAccessibleName("");

        getContentPane().add(keyPanel, java.awt.BorderLayout.CENTER);

        mFile.setText("File");

        mLoadRam.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_L, java.awt.event.InputEvent.CTRL_MASK));
        mLoadRam.setText("Load RAM");
        mLoadRam.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mLoadRamActionPerformed(evt);
            }
        });
        mFile.add(mLoadRam);

        mSaveRam.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_S, java.awt.event.InputEvent.CTRL_MASK));
        mSaveRam.setText("Save RAM");
        mSaveRam.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mSaveRamActionPerformed(evt);
            }
        });
        mFile.add(mSaveRam);
        mFile.add(jSeparator1);

        mExit.setAccelerator(javax.swing.KeyStroke.getKeyStroke(java.awt.event.KeyEvent.VK_X, java.awt.event.InputEvent.CTRL_MASK));
        mExit.setText("Exit");
        mExit.addActionListener(new java.awt.event.ActionListener() {
            public void actionPerformed(java.awt.event.ActionEvent evt) {
                mExitActionPerformed(evt);
            }
        });
        mFile.add(mExit);

        jMenuBar1.add(mFile);

        setJMenuBar(jMenuBar1);

        pack();
    }// </editor-fold>//GEN-END:initComponents

    private void ButtonAction(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonAction
        int keycode = Integer.parseInt(evt.getActionCommand(), 16);
        m.keyPressed(keycode);
    }//GEN-LAST:event_ButtonAction

    private void ButtonResActionPerformed(java.awt.event.ActionEvent evt) {
        m.resetPressed();
    }

    private void mSaveRamActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mSaveRamActionPerformed
        m.stopEmulation();
        
        fc.setFileFilter(hex);
        fc.setDialogTitle("Save RAM to Hex file");
        int val = fc.showSaveDialog(this);
        
        if (val==JFileChooser.APPROVE_OPTION) {
            try {
                String s = fc.getSelectedFile().getCanonicalPath();
                if (!s.endsWith(hex.extension)) { s = s + hex.extension; }
                m.saveRam(s);
            } catch (IOException ex) {
                Logger.getLogger(Savia84.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        m.startEmulation();
    }//GEN-LAST:event_mSaveRamActionPerformed

    private void mLoadRamActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mLoadRamActionPerformed
        m.stopEmulation();
        
        fc.setFileFilter(hex);        
        fc.setDialogTitle("Load RAM from Hex file");
        int val = fc.showOpenDialog(this);
        
        if (val==JFileChooser.APPROVE_OPTION) {
            try {
                m.loadRam(fc.getSelectedFile().getCanonicalPath());
            } catch (IOException ex) {
                Logger.getLogger(Savia84.class.getName()).log(Level.SEVERE, null, ex);
            }
        }

        m.startEmulation();        
    }//GEN-LAST:event_mLoadRamActionPerformed

    private void mExitActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_mExitActionPerformed
        System.exit(0);
    }//GEN-LAST:event_mExitActionPerformed

    private void DebugModeAction(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_DebugModeAction
        DispA1.Clear();
        DispA2.Clear();
        DispA3.Clear();
        DispA4.Clear();
        DispD1.Clear();
        DispD2.Clear();
        m.setDebugMode(evt.getActionCommand().charAt(0));
    }//GEN-LAST:event_DebugModeAction

    private void ButtonStepActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonStepActionPerformed
        m.stepPressed();
    }//GEN-LAST:event_ButtonStepActionPerformed


    /**
     * @param args the command line arguments
     */
    public static void main(String args[]) {
        /*
         * Set the Nimbus look and feel
         */
        //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
        /*
         * If Nimbus (introduced in Java SE 6) is not available, stay with the
         * default look and feel. For details see
         * http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
         */
        try {
            for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
                if ("Nimbus".equals(info.getName())) {
                    javax.swing.UIManager.setLookAndFeel(info.getClassName());
                    break;
                }
            }
        } catch (ClassNotFoundException ex) {
            java.util.logging.Logger.getLogger(Savia84.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (InstantiationException ex) {
            java.util.logging.Logger.getLogger(Savia84.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (IllegalAccessException ex) {
            java.util.logging.Logger.getLogger(Savia84.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        } catch (javax.swing.UnsupportedLookAndFeelException ex) {
            java.util.logging.Logger.getLogger(Savia84.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
        }
        //</editor-fold>

        /*
         * Create and display the form
         */
        java.awt.EventQueue.invokeLater(new Runnable() {

            public void run() {
                new Savia84().setVisible(true);
            }
        });
    }
    // Variables declaration - do not modify//GEN-BEGIN:variables
    private javax.swing.JButton Button0;
    private javax.swing.JButton Button1;
    private javax.swing.JButton Button2;
    private javax.swing.JButton Button3;
    private javax.swing.JButton Button4;
    private javax.swing.JButton Button5;
    private javax.swing.JButton Button6;
    private javax.swing.JButton Button7;
    private javax.swing.JButton Button8;
    private javax.swing.JButton Button9;
    private javax.swing.JButton ButtonA;
    private javax.swing.JButton ButtonAd;
    private javax.swing.JButton ButtonB;
    private javax.swing.JButton ButtonBr;
    private javax.swing.JButton ButtonC;
    private javax.swing.JButton ButtonD;
    private javax.swing.JButton ButtonDa;
    private javax.swing.JButton ButtonE;
    private javax.swing.JButton ButtonEx;
    private javax.swing.JButton ButtonF;
    private javax.swing.JButton ButtonL;
    private javax.swing.JButton ButtonR;
    private javax.swing.JButton ButtonRes;
    private javax.swing.JButton ButtonS;
    private javax.swing.JButton ButtonStep;
    private gui.SevenDisp Disp1;
    private gui.SevenDisp Disp2;
    private gui.SevenDisp Disp3;
    private gui.SevenDisp Disp4;
    private gui.SevenDisp Disp5;
    private gui.SevenDisp Disp6;
    private gui.SevenDisp Disp7;
    private gui.SevenDisp Disp8;
    private gui.SevenDisp DispA1;
    private gui.SevenDisp DispA2;
    private gui.SevenDisp DispA3;
    private gui.SevenDisp DispA4;
    private gui.SevenDisp DispD1;
    private gui.SevenDisp DispD2;
    private javax.swing.JLabel Led1;
    private javax.swing.JLabel Led2;
    private javax.swing.JLabel Led3;
    private javax.swing.JLabel Led4;
    private javax.swing.JLabel Led5;
    private javax.swing.JLabel Led6;
    private javax.swing.JLabel Led7;
    private javax.swing.JLabel Led8;
    private javax.swing.ButtonGroup debugGroup;
    private javax.swing.JPanel dispPanel;
    private javax.swing.JPanel dispPanel1;
    private javax.swing.JFileChooser fc;
    private javax.swing.JMenuBar jMenuBar1;
    private javax.swing.JPanel jPanel1;
    private javax.swing.JRadioButton jRadioButton1;
    private javax.swing.JRadioButton jRadioButton3;
    private javax.swing.JRadioButton jRadioButton5;
    private javax.swing.JPopupMenu.Separator jSeparator1;
    private javax.swing.JPanel keyPanel;
    private javax.swing.JMenuItem mExit;
    private javax.swing.JMenu mFile;
    private javax.swing.JMenuItem mLoadRam;
    private javax.swing.JMenuItem mSaveRam;
    // End of variables declaration//GEN-END:variables
}
